/*************************************************
  * 描述：
  *
  * File：keymapwin.h
  * Author：chenyujin@mozihealthcare.cn
  * Date：2025/9/11
  * Update：
  * ************************************************/
#ifndef COREXI_COMMON_PC_KEYMAPWIN_H
#define COREXI_COMMON_PC_KEYMAPWIN_H
#include <common/export.h>

#ifdef Q_OS_WIN
#include <string>
#include <unordered_map>
#include <windows.h>

namespace keyMapWin
{
	// 按键描述到虚拟键码的映射表
	inline std::unordered_map<std::string, UINT> keyMap =
			{
					{"A", 'A'},
					{"B", 'B'},
					{"C", 'C'},
					{"D", 'D'},
					{"E", 'E'},
					{"F", 'F'},
					{"G", 'G'},
					{"H", 'H'},
					{"I", 'I'},
					{"J", 'J'},
					{"K", 'K'},
					{"L", 'L'},
					{"M", 'M'},
					{"N", 'N'},
					{"O", 'O'},
					{"P", 'P'},
					{"Q", 'Q'},
					{"R", 'R'},
					{"S", 'S'},
					{"T", 'T'},
					{"U", 'U'},
					{"V", 'V'},
					{"W", 'W'},
					{"X", 'X'},
					{"Y", 'Y'},
					{"Z", 'Z'},
					{"0", '0'},
					{"1", '1'},
					{"2", '2'},
					{"3", '3'},
					{"4", '4'},
					{"5", '5'},
					{"6", '6'},
					{"7", '7'},
					{"8", '8'},
					{"9", '9'},
					{"F1", VK_F1},
					{"F2", VK_F2},
					{"F3", VK_F3},
					{"F4", VK_F4},
					{"F5", VK_F5},
					{"F6", VK_F6},
					{"F7", VK_F7},
					{"F8", VK_F8},
					{"F9", VK_F9},
					{"F10", VK_F10},
					{"F11", VK_F11},
					{"F12", VK_F12},
					{"ENTER", VK_RETURN},
					{"SPACE", VK_SPACE}};

	// 修饰键到MOD_常量的映射表
	inline std::unordered_map<std::string, UINT> modMap =
			{
					{"CTRL", MOD_CONTROL},
					{"SHIFT", MOD_SHIFT},
					{"ALT", MOD_ALT}};
}// namespace keyMapWin
#endif
#endif//COREXI_COMMON_PC_KEYMAPWIN_H
